﻿package minipost.user;

import java.io.Serializable;
import java.sql.SQLException;

import mimipost.database.AdministratorSql;
import minipost.user.model.Administrator;

public class AdministratorBean implements Serializable {
	/**
	 * 构造方法
	 */
	public AdministratorBean() {
		sql = new AdministratorSql();
	}

	/**
	 * 插入新的管理员用户
	 */
	public void insert(Administrator admin) {
		try {
			sql.insert(admin);
			System.out.println("insert admin success.");
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 验证管理员用户是否合法
	 * @param username 用户名
	 * @param password 密码
	 * @return 布尔值 合法为true
	 */
	public boolean isValidUser(String username, String password) {
		return isValidUser(new Administrator(username, password));
	}
	
	/**
	 * 验证管理员用户是否合法
	 * @return 布尔值 合法为true
	 */
	public boolean isValidUser(Administrator admin) {
		if (admin == null || admin.isEmpty()) {
			return false;
		}

		boolean flag = false;
		try {
			flag = sql.isValidatedUser(admin.getUsername(), admin.getPassword());
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return flag;
	}
	
	/**
	 * 修改密码
	 * @param admin 修改后的管理员用户
	 */
	public void updatePassword(Administrator admin) {
		try {
			sql.updatePassword(admin);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 按照管理员用户名删除
	 * @param username 管理员用户名
	 */
	public void deleteByUsername(String username) {
		try {
			sql.deleteByUsername(username);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	private static final long serialVersionUID = -7488730623475443676L;

	AdministratorSql sql = null;	// 数据库操作
}